﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GDISim._Infrastructure._Hardware._Tier;
using System.Xml.Serialization;

namespace GDISim._Infrastructure._Software._Operation._Message
{
    public class Message
    {
        #region Members
        private Guid messageId;
        private TierName sourceTier;
        private TierName destinationTier;
        private double rt;
        private double rm;
        private double rp;
        private double rd;
        private Message childMessage;
        #endregion

        #region Constructor
        public Message()
        {
        }
        #endregion

        #region Properties
        [XmlIgnore]
        public Guid MessageId
        {
            get
            {
                return this.messageId;
            }
            set
            {
                this.messageId = value;
            }
        }
        [XmlAttribute("SourceTier")]
        public TierName SourceTier
        {
            get
            {
                return this.sourceTier;
            }
            set
            {
                this.sourceTier = value;
            }
        }
        [XmlAttribute("DestinationTier")]
        public TierName DestinationTier
        {
            get
            {
                return this.destinationTier;
            }
            set
            {
                this.destinationTier = value;
            }
        }
        [XmlAttribute("Rt")]
        public double Rt
        {
            get
            {
                return this.rt;
            }
            set
            {
                this.rt = value;
            }

        }
        [XmlAttribute("Rm")]
        public double Rm
        {
            get
            {
                return this.rm;
            }
            set
            {
                this.rm = value;
            }

        }
        [XmlAttribute("Rd")]
        public double Rd
        {
            get
            {
                return this.rd;
            }
            set
            {
                this.rd = value;
            }

        }
        [XmlAttribute("Rp")]
        public double Rp
        {
            get
            {
                return this.rp;
            }
            set
            {
                this.rp = value;
            }

        }
        [XmlElement("Message")]
        public Message ChildMessage
        {
            get
            {
                return this.childMessage;
            }
            set
            {
                this.childMessage = value;
            }
        }
        #endregion

        #region Methods

        #endregion
    }
}
